iT邦幫忙

2021 iThome 鐵人賽

DAY 23
0

昨天非常粗淺的介紹過 istio 後,今天我們要來實際將 Istio mesh 注入我們的 cluster。此外會將今天的內容獨立為一篇,是因為筆者在嘗試,將 Istio 與 Open-Match 結合的過程並不順利,這邊準備好了最後成功的範例,希望可以多少幫助大家。

部署流程

  1. 確認 Istio 核心已安裝

    ~ kubectl get svc -n istio-system
    
    NAME                   TYPE           CLUSTER-IP       EXTERNAL-IP   PORT(S)                                                                      AGE
    istio-egressgateway    ClusterIP      10.97.46.6       <none>        80/TCP,443/TCP                                                               4h18m
    istio-ingressgateway   LoadBalancer   10.108.148.225   localhost     15021:31844/TCP,80:31864/TCP,443:31448/TCP,31400:31199/TCP,15443:30257/TCP   4h18m
    istiod                 ClusterIP      10.97.153.206    <none>        15010/TCP,15012/TCP,443/TCP,15014/TCP                                        4h18m
    
  2. Label open-match namespace

    kubectl label namespace open-match istio-injection=enabled
    
  3. Deploy Redis

    helm install -n open-match open-match-redis bitnami/redis \
      --set architecture=standalone \
      --set auth.enabled=false \
      --set auth.sentinel=false
    
  4. Deploy Open-Match core

    helm install open-match --namespace open-match open-match/open-match \
      --set open-match-customize.enabled=true \
      --set open-match-customize.evaluator.enabled=true \
      --set open-match-override.enabled=true \
      --set query.replicas=1 \
      --set frontend.replicas=1 \
      --set backend.replicas=1 \
      --set open-match-core.redis.enabled=false \
      --set open-match-core.redis.hostname=open-match-redis-master
    

注意到我們在 step.3 特別部署了一個簡易的 redis,並且在 step.4 部署核心時,指定 Open-Match 使這個自訂的 redis,會這麼做是因為,筆者在直接使用原本核心提供的 redis 設定時,如果套上 istio 便會無法成功連線,很遺憾的是,目前我還沒有找到是哪個部分影響到。但透過自己指定 redis 的方式,目前測試起來是可以運作的。

測試

  1. 部署官方範例

    kubectl create namespace open-match-demo /
    kubectl label namespace open-match-demo istio-injection=enabled /
    kubectl apply -n open-match-demo -f https://open-match.dev/install/v1.3.0-rc.1/yaml/02-open-match-demo.yaml
    
  2. 增加核心 open-match-query 數量

    helm upgrade open-match --namespace open-match ./open-match \
      --set open-match-customize.enabled=true \
      --set open-match-customize.evaluator.enabled=true \
      --set open-match-override.enabled=true \
      --set query.replicas=2 \
      --set frontend.replicas=1 \
      --set backend.replicas=1 \
      --set open-match-core.redis.enabled=false \
      --set open-match-core.redis.hostname=open-match-redis-master
    
  3. 觀察 2個 open-match-query 是否都有收到 queries

    kubectl logs -n open-match open-match-query-{POD_ID}
    

    都有持續觸發由 demo MMF 發出來的 debug log 就可以了

    time="2021-10-01T01:14:06Z" level=debug msg="Ticket Cache update: Previous 2, Deleted 2, Fetched 3, Current 3" app=openmatch component=app.query
    time="2021-10-01T01:14:17Z" level=debug msg="Ticket Cache update: Previous 3, Deleted 2, Fetched 0, Current 1" app=openmatch component=app.query
    time="2021-10-01T01:14:28Z" level=debug msg="Ticket Cache update: Previous 1, Deleted 1, Fetched 1, Current 1" app=openmatch component=app.query
    

上一篇
Day22 Istio
下一篇
Day24 生產環境需要注意的部分
系列文
徵坦補! 新手可! Open-Match 配對框架30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言